home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / pm-utils / bin / pm-action
Text File  |  2009-10-06  |  3KB  |  112 lines

  1. #!/bin/sh
  2. # vim: noexpandtab
  3. # Simple suspend script
  4. #
  5. # Copyright 2006 Red Hat, Inc.
  6. #
  7. # Based on work from:
  8. #    Bill Nottingham <notting@redhat.com>
  9. #    Peter Jones <pjones@redhat.com>
  10. #    David Zeuthen <davidz@redhat.com>
  11. #    Richard Hughes <richard@hughsie.com>
  12. #
  13. # This program is free software; you can redistribute it and/or modify
  14. # it under the terms of version 2 of the GNU General Public License as
  15. # published by the Free Software Foundation.
  16. #
  17. # This program is distributed in the hope that it will be useful,
  18. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20. # GNU General Public License for more details.
  21. #
  22. # You should have received a copy of the GNU General Public License
  23. # along with this program; if not, write to the Free Software
  24. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  25. #
  26.  
  27. # The rule here? Simplicity.
  28. export STASHNAME=pm-suspend
  29. export METHOD="$(echo ${0##*pm-} |tr - _)"
  30. . "/usr/lib/pm-utils/pm-functions"
  31.  
  32. help()
  33. {
  34.     echo "${0##*/} [options]"
  35.     echo
  36.     echo "Options can change how suspend or hibernate is done."
  37.     run_hooks sleep help
  38.     sleep_module_help
  39.     exit 0
  40. }
  41.  
  42. if [ "$(id -u)" != "0" ]; then
  43.     echo This utility may only be run by the root user. 1>&2
  44.     exit 1
  45. fi
  46.  
  47. remove_suspend_lock()
  48. {
  49.     release_lock "${STASHNAME}.lock"
  50. }
  51.  
  52. try_lock "${STASHNAME}.lock" || exit 1
  53.  
  54. # make sure we release the lock no matter how we exit
  55. trap remove_suspend_lock 0
  56.  
  57. # clean up from the last run
  58. rm -rf "${STORAGEDIR}"
  59. mkdir -p "${STORAGEDIR}"
  60. # save our parameter list.
  61. [ -f "$PARAMETERS" ] || echo '' >"$PARAMETERS"
  62. add_parameters $PM_CMDLINE
  63. update_parameters
  64.  
  65. while [ $# -gt 0 ]
  66. do
  67.     [ "$1" = "--help" ] && help
  68.     shift
  69. done
  70.  
  71.  
  72. command_exists "check_$METHOD" && command_exists "do_$METHOD" || {
  73.     log "pm-utils does not know how to $METHOD on this system."
  74.     exit 1
  75. }
  76.  
  77. "check_$METHOD" || {
  78.     log "This system does not support $METHOD as a sleep method."
  79.     exit 1
  80. }
  81.  
  82. case "$METHOD" in
  83.     suspend*)     ACTION=suspend;   REVERSE=resume ;;
  84.     hibernate)     ACTION=hibernate; REVERSE=thaw ;;
  85.     *)        echo "Cannot happen.  Please file a bug against pm-utils."
  86.             exit 1 ;;
  87. esac
  88.  
  89. init_logfile "${PM_LOGFILE}"
  90. log "Initial commandline parameters: $PM_CMDLINE"
  91. load_hook_blacklist
  92. load_hook_parameters
  93.  
  94. # run the sleep hooks
  95. log "$(date): Running hooks for $ACTION."
  96. if run_hooks sleep "$ACTION $METHOD"; then
  97.         # Sleep only if we know how and if a hook did not inhibit us.
  98.     log "$(date): performing $METHOD"
  99.     sync
  100.     "do_$METHOD"
  101.     log "$(date): Awake."
  102. else
  103.     log "$(date): Inhibit found, will not perform $METHOD"
  104. fi
  105. log "$(date): Running hooks for $REVERSE"
  106. # run the sleep hooks in reverse with the wakeup action
  107. if run_hooks sleep "$REVERSE $METHOD" reverse; then
  108.         log "$(date): Finished."
  109. else 
  110.         exit 1
  111. fi
  112.